home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Updaters / WhiteCap 3.0.4 / WhiteCap Source.sit / WhiteCap Source / Common / math / Headers / Expression.h < prev    next >
Text File  |  1999-07-13  |  972b  |  43 lines

  1. #ifndef __Equation__
  2. #define __Equation__
  3.  
  4.  
  5. #include "UtilStr.h"
  6. #include "ExprVirtualMachine.h"
  7.  
  8. class ExpressionDict;
  9.  
  10.  
  11. class Expression : protected ExprVirtualMachine {
  12.     
  13.     public:
  14.     
  15.         /* Makes a copy of inExpr and each subsequent call to Evaluate() becomes equivilent to:
  16.         float v1 = this.Evaluate();
  17.         float v2 = inExpr.Evaluate();
  18.         return ( *inTransitionLink ) * v1 + ( 1 - *inTransitionLink ) * v2;  */    
  19.         // Note: Weight() does *not* update this expression such that calls to IsDependent() also check inExpr
  20.         bool                Weight( Expression& inExpr, float* inTransitionLink );
  21.         
  22.         bool                Compile( const UtilStr& inStr, ExpressionDict& inDict );
  23.         
  24.         inline float        Evaluate()    { return Execute();    }
  25.         
  26.         bool                IsDependent( char* inStr );
  27.         
  28.         void                Assign( Expression& inExpr );
  29.         
  30.         
  31.     protected:
  32.         UtilStr                mEquation;
  33.         bool                mIsCompiled;
  34.         
  35.         static int            Compile( char* inStr, long inLen, ExpressionDict& inDict, ExprVirtualMachine& inVM );
  36. };
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43. #endif